#include "Constantes_Globals.h"

// ---- MUTEX LOCK ----//
int mutex_lock(Processo* p) {    
    int registrador = mutex;    //copia mutex para o registrador
    mutex = 1;                  //atribui o mutex o valor 1
    
    if(registrador == 0){//verifica se o mutex era 0
         fprintf(log_file, "Regiao Critica Livre, o processo %d entrou na regiao\n",p->pid);
        pid_processo_regiao_critica = p->pid;
        return 0;
    }else{//o mutex estava ocupado escalone um outro thread
        fprintf(log_file, "Regiao Critica Ocupada, o processo %d nao podera entrar na regiao\n",p->pid);
        fprintf(log_file, "Tente novamente mais tarde\n");
    }
}

// -------- MUTEX_UNLOCK ------------
void mutex_unlock() {    
   mutex = 0;   
   pid_processo_regiao_critica = 0;
}
